/**
 * 随便选2条线充当两边
 * 以两边之中，短的那条线作为对比线
 * 当从短的那条线移动时，如果中间的线比它短（高度更小），此时宽度变少了，那面积肯定变得更小了
 * 如果中间的线比它长或者一样长，此时高度不变，宽度变少了，面积也不会比原来的更大
 * 所以，如果要找到比原来区域更大的那条线，一定不会包含原来的那条短线
 */

/**
 * @param {number[]} height
 * @return {number}
 */
var maxArea = function (height) {
  let left = 0,
    right = height.length - 1,
    ans = 0;
  while (left < right) {
    // 面积 = 短边 * 宽度
    const area = Math.min(height[left], height[right]) * (right - left);
    ans = Math.max(ans, area);
    // 一直移动较短的那边
    if (height[left] < height[right]) {
      left++;
    } else {
      right--;
    }
  }
  return ans;
};
